package com.zkh360.service.message.service;

import java.util.List;

import com.zkh360.service.message.exceptions.BusinessException;
import com.zkh360.service.message.model.SysAuthorityVO;
import com.zkh360.service.message.model.SysRoleVO;
import com.zkh360.service.message.model.SysRolesAuthorityVO;
import com.zkh360.service.message.model.SysUserVO;

/**
 * 权限接口
 * 
 * @author chuanxi.zhao
 * 
 */
public interface AuthorityService {

    /**
     * 根据权限属性查询权限信息
     *
     * @param sysAuthorities  权限属性
     * @return 权限集合
     */
    public List<SysAuthorityVO> getAuthorities(SysAuthorityVO sysAuthority) throws BusinessException;
    
    /**
     * 根据用户属性查询权限信息
     *
     * @param sysUsers  权限属性
     * @return 权限集合
     */
    public List<SysAuthorityVO> getAuthoritysByUser(SysUserVO sysUserVo) throws BusinessException;
    
    /**
     * 添加权限信息
     * 
     * @param sysAuthorityVo 权限信息
     */
	public void addAuthority(SysAuthorityVO sysAuthorityVo);
	
	/**
	 * 删除权限信息
	 * 
	 * @param authorityId 资源ID
	 */
	public void deleteAuthority(Integer authorityId);

	/**
	 * 修改权限信息
	 * 
	 * @param sysAuthorityVo 权限信息
	 */
	public void editAuthority(SysAuthorityVO sysAuthorityVo);
	
	/**
	 * 根据角色查询角色配置了什么权限
	 * 
	 * @param sysRoleVo  角色信息
	 * @return 权限信息
	 */
	public List<SysAuthorityVO> getAuthoritysByRole(SysRoleVO sysRoleVo);
	
	/**
	 * 修改权限角色关联关系
	 * 
	 * @param sysRolesAuthorityVoList 权限角色关联关系
	 */
	public void ediAuthorityByRole(List<SysRolesAuthorityVO> sysRolesAuthorityVoList);
}
